home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat96 / klondike_adptools_v1.1 / datas / english.lha / 3-RenderCardset.adpro < prev    next >
Text File  |  1995-04-15  |  18KB  |  767 lines

  1. /*
  2. ** RenderCardset.adpro :
  3. **  This ARexx script for ADPro v2.5 or higher, load global palette, 52
  4. **  cards pictures, symbols pictures and some extras pictures, render then,
  5. **  save then to IFF HAM8 88x130, make a Klondike cardset with the tool
  6. **  'reko', and finally save it.
  7. **
  8. **  Klondike & Reko tools © Copyright Reko Produtions - All rights reserved.
  9. **
  10. ** $VER: RenderCardset/English v1.1 (06.04.95) © Copyright Lejardinier Olivier - All rights reserved
  11. **
  12. */
  13.  
  14.  ADDRESS "ADPro"
  15.  OPTIONS RESULTS
  16.  
  17.  NL = '0A'X
  18.  FALSE = 0
  19.  TRUE = 1
  20.  
  21. /*
  22. ** Save the current environment.
  23. */
  24.  
  25.  TempDefaults = "T:TempADProDefaults"
  26.  SAVE_DEFAULTS TempDefaults
  27.  
  28. /*
  29. ** Initializations.
  30. */
  31.  
  32.  CLOSE_RENDER_SCREEN
  33.  CLEAR_RENDERED
  34.  CLEAR_RAW
  35.  PSTATUS "UNLOCKED"
  36.  ADPRO_TO_FRONT
  37.  
  38.  MemoryError = "Perhaps not enought memory."
  39.  FileMemError = "Perhaps file corrupted or not enought memory."
  40.  DiskSpaceError = "Perhaps not enought disk space."
  41.  
  42. /*
  43. ** Get cards files.
  44. */
  45.  
  46.  Continue = FALSE
  47.  DO UNTIL ( Continue = TRUE )
  48.   GETFILES '"Select 52 cards files :"'
  49.   IF (RC ~= 0) THEN
  50.    DO
  51.     Text = "You MUST select at least 52 cards files !"
  52.     OKAYN '"Error :"' '"'Text'"' '"Select|Abort"'
  53.     IF ( RC = 0 ) THEN
  54.      CALL ForceExit
  55.    END
  56.   ELSE
  57.    DO
  58.     CardsFiles = ADPRO_RESULT
  59.     NbCards = WORDS( CardsFiles )
  60.  
  61.     IF ( NbCards < 52 ) THEN
  62.      DO
  63.       Text = "Sorry, you didn't have selected at least 52 cards !"
  64.       OKAYN '"Error :"' '"'Text'"' '"Select|Abort"'
  65.       IF ( RC = 0 ) THEN
  66.        CALL ForceExit
  67.      END
  68.     ELSE
  69.      Continue = TRUE
  70.    END
  71.  END
  72.  
  73.  SourceDir = WORD( CardsFiles , 1 )
  74.  FirstChar = LEFT( SourceDir , 1 )
  75.  IF ( (FirstChar = '"') | (FirstChar = '''') ) THEN
  76.   SourceDir = STRIP( SourceDir, "B" , FirstChar )
  77.  
  78.  FNameSepPos = LASTPOS( '/' , SourceDir )
  79.  IF ( FNameSepPos = 0 ) THEN
  80.   FNameSepPos = LASTPOS( ':' , SourceDir )
  81.  
  82.  IF ( FNameSepPos ~= 0 ) THEN
  83.   DO
  84.    Basename = RIGHT( SourceDir , LENGTH( SourceDir ) - FNameSepPos )
  85.    SourceDir = LEFT( SourceDir , FNameSepPos )
  86.    IF ( LASTPOS( '.'  , Basename ) ~= 0 ) THEN
  87.     Basename = DELSTR( Basename , LASTPOS( '.'  , Basename ) )
  88.   END
  89.  ELSE
  90.   DO
  91.    SourceDir = ""
  92.    Basename = "Cards"
  93.   END
  94.  
  95. /*
  96. ** Get global palette file.
  97. */
  98.  
  99.  Palettename = Basename || ".Palette"
  100.  Continue = FALSE
  101.  DO UNTIL ( Continue = TRUE )
  102.   GETFILE '"Select global palette file :"' '"'SourceDir'"' '"'Palettename'"'
  103.   IF (RC ~= 0) THEN 
  104.    DO
  105.     Text = "Sorry, global palette is required !"
  106.     OKAYN '"Error :"' '"'Text'"' '"Select|Abort"'
  107.     IF ( RC = 0 ) THEN
  108.      CALL ForceExit
  109.    END
  110.   ELSE
  111.    IF ( ~EXISTS( ADPRO_RESULT ) ) THEN
  112.     DO
  113.      Text = "Can't find global palette file :" || NL || STRIP( ADPRO_RESULT , B , '"' )
  114.      OKAYN '"Error :"' '"'Text'"' '"Select|Abort"'
  115.      IF ( RC = 0 ) THEN
  116.       CALL ForceExit
  117.     END
  118.    ELSE
  119.     DO
  120.      Palettename = ADPRO_RESULT
  121.      Continue = TRUE
  122.     END
  123.  END
  124.  
  125. /*
  126. ** Get symbols files.
  127. */
  128.  
  129.  SymbolDir = SourceDir
  130.  Continue = FALSE
  131.  DO UNTIL ( Continue = TRUE )
  132.   GETFILES '"Select 52 symbols files :"' '"'SymbolDir'"'
  133.   IF (RC ~= 0) THEN
  134.    DO
  135.     Text = "You MUST select at least 52 symbols files !"
  136.     OKAYN '"Error :"' '"'Text'"' '"Select|Abort"'
  137.     IF ( RC = 0 ) THEN
  138.      CALL ForceExit
  139.    END
  140.   ELSE
  141.    DO
  142.     SymbolsFiles = ADPRO_RESULT
  143.  
  144.     IF ( WORDS( SymbolsFiles ) < 52 ) THEN
  145.      DO
  146.       Text = "Sorry, You didn't have selected at least 52 symbols !"
  147.       OKAYN '"Error :"' '"'Text'"' '"Select|Abort"'
  148.       IF ( RC = 0) THEN
  149.        CALL ForceExit
  150.       ELSE
  151.        DO
  152.         SymbolDir = WORD( SymbolsFiles , 1 )
  153.         FirstChar = LEFT( SymbolDir , 1 )
  154.         IF ( (FirstChar = '"') | (FirstChar = '''') ) THEN
  155.          SymbolDir = STRIP( SymbolDir, "B" , FirstChar )
  156.  
  157.         FNameSepPos = LASTPOS( '/' , SymbolDir )
  158.         IF ( FNameSepPos = 0 ) THEN
  159.          FNameSepPos = LASTPOS( ':' , SymbolDir )
  160.  
  161.         IF ( FNameSepPos ~= 0 ) THEN
  162.          SymbolDir = LEFT( SymbolDir , FNameSepPos )
  163.         ELSE
  164.          SymbolDir = ""
  165.        END
  166.      END
  167.     ELSE
  168.      Continue = TRUE
  169.    END
  170.  END
  171.  
  172. /*
  173. ** Get output directory for cardset file.
  174. */
  175.  
  176.  Continue = FALSE
  177.  DO UNTIL ( Continue = TRUE )
  178.   GETDIR '"Select output directory :"' '"'SourceDir'"'
  179.   IF ( RC ~= 0 ) THEN
  180.    DO
  181.     Text = "Use :" || NL || SourceDir || NL || "as default output directory ?"
  182.     OKAYN '"Confirm :"' '"'Text'"' '"Use|Select|Abort"'
  183.     IF ( RC = 0 ) THEN
  184.      CALL ForceExit
  185.     ELSE
  186.      IF ( RC = 1 ) THEN
  187.       DO
  188.        DestDir = SourceDir
  189.        Continue = TRUE
  190.       END
  191.    END
  192.   ELSE
  193.    DO
  194.     DestDir = ADPRO_RESULT
  195.     Continue = TRUE
  196.    END
  197.  END
  198.  
  199.  FirstChar = LEFT( DestDir , 1 )
  200.  IF ( ( FirstChar = '"' ) | ( FirstChar = '''' ) ) THEN
  201.   DestDir = STRIP( DestDir , "B" , LEFT( DestDir, 1 ) )
  202.  
  203.  LastChar = RIGHT( DestDir , 1 )
  204.  IF ( ( LastChar ~= "/" ) & ( LastChar ~= ":" ) ) THEN
  205.   DestDir = DestDir || "/"
  206.  
  207. /*
  208. ** Get base name for rendered cards files.
  209. */
  210.  
  211.  Continue = FALSE
  212.  DO UNTIL ( Continue = TRUE )
  213.   GETSTRING '"Select card base name :"' '"'Basename'"'
  214.   IF ( RC ~= 0 ) THEN
  215.    DO
  216.     Text = "Use 'Card' as default card base name ?"
  217.     OKAYN '"Confirm :"' '"'Text'"' '"Use|Select|Abort"'
  218.     IF ( RC = 0 ) THEN
  219.      CALL ForceExit
  220.     ELSE
  221.      IF ( RC = 1 ) THEN
  222.       DO
  223.        Basename = "Card"
  224.        Continue = TRUE
  225.       END
  226.    END
  227.   ELSE
  228.    DO
  229.     Basename = ADPRO_RESULT
  230.     Continue = TRUE
  231.    END
  232.  END
  233.     
  234. /*
  235. ** Get colors 0.
  236. */
  237.  
  238.  LOAD_TYPE '"REPLACE"'
  239.  Symbolname = WORD( SymbolsFiles , 1 )
  240.  
  241.  Continue = FALSE
  242.  DO UNTIL ( Continue = TRUE )
  243.   LOADER '"UNIVERSAL"' Symbolname
  244.   IF ( RC ~= 0 ) THEN
  245.    DO
  246.     Text = "Unable to load first symbol file :" || NL || STRIP( Symbolname , B , '"' ) || NL || FileMemError
  247.     OKAYN '"Error :"' '"'Text'"' '"Retry|Select|Abort"'
  248.     IF ( RC = 0 ) THEN
  249.      CALL ForceExit
  250.     ELSE
  251.      IF ( RC = 2 ) THEN
  252.       DO
  253.        GETFILE '"Select a symbol file :"'
  254.        IF ( RC ~= 0 ) THEN
  255.         CALL ForceExit
  256.        ELSE
  257.         Symbolname = ADPRO_RESULT
  258.       END
  259.    END
  260.   ELSE
  261.    Continue = TRUE
  262.  END
  263.  
  264.  PPOKE 0
  265.  IF ( RC ~= 0 ) THEN
  266.   DO
  267.    Text = "Unable to get color 0 in symbol file :" || NL || STRIP( Symbolname , B , '"' )
  268.    OKAYN '"Error :"' '"'Text'"' '"Quit"'
  269.    CALL ForceExit
  270.   END
  271.  
  272.  SymbolCol0 = ADPRO_RESULT
  273.  
  274.  Continue = FALSE
  275.  DO UNTIL( Continue = TRUE )  
  276.   PLOAD Palettename
  277.   IF ( RC ~= 0 ) THEN
  278.    DO
  279.     Text = "Unable to load global palette :" || NL || STRIP( Palettename , B , '"' ) || NL || FileMemError
  280.     OKAYN '"Error :"' '"'Text'"' '"Retry|Select|Abort"'
  281.     IF ( RC = 0 ) THEN
  282.      DO
  283.       Text = "If this palette file is corrupted, you should" || NL || "create another with 2-MakeGlobalPalette.adpro."
  284.       OKAYN '"Infos :"' '"'Text'"' '"Quit"'
  285.       CALL ForceExit
  286.      END
  287.     ELSE
  288.      IF ( RC = 2 ) THEN
  289.       DO
  290.        GETFILE '"Select a global palette file :"' '"'SourceDir'"' '"'Palettename'"'
  291.        IF ( RC ~= 0 ) THEN
  292.         CALL ForceExit
  293.        ELSE
  294.         Palettename = ADPRO_RESULT
  295.       END
  296.    END
  297.   ELSE
  298.    Continue = TRUE
  299.  END
  300.  
  301.  PSTATUS '"LOCKED"'
  302.  PPOKE 0
  303.  IF ( RC ~= 0 ) THEN
  304.   DO
  305.    Text = "Unable to get color 0 in palette file :" || NL || STRIP( Palettename , B , '"' )
  306.    OKAYN '"Error :"' '"'Text'"' '"Quit"'
  307.    CALL ForceExit
  308.   END
  309.  
  310.  CardCol0 = ADPRO_RESULT
  311.  
  312. /*
  313. ** Main loop.
  314. */
  315.  
  316.  SET_RENDER_MODE Amiga 167940 88 130 HAM8
  317.  Counter = 1
  318.  Index = 1
  319.  
  320.  DO WHILE ( Index <= 52 )
  321.  
  322.   Continue0 = FALSE
  323.   DO UNTIL ( Continue0 = TRUE)
  324.   
  325.    /*
  326.    ** Create backdrop.
  327.    */
  328.  
  329.    LOAD_TYPE '"REPLACE"'
  330.  
  331.    Continue = FALSE
  332.    DO UNTIL ( Continue = TRUE )
  333.     LOADER '"BACKDROP"' "XXX" "WIDTH" 88 "HEIGHT" 130 CardCol0 "COLOR"
  334.     IF (RC ~= 0) THEN
  335.      DO
  336.       Text = "Unable to create backdrop picture !" || NL || MemoryError
  337.       OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  338.       IF ( RC = 0 ) THEN
  339.        CALL ForceExit
  340.      END
  341.     ELSE
  342.     Continue = TRUE
  343.    END
  344.  
  345.    /*
  346.    ** Compose with card file.
  347.    */
  348.  
  349.    LOAD_TYPE '"COMPOSE"'
  350.    Cardname = WORD( CardsFiles , Counter )
  351.  
  352.    LOADER '"IFF"' Cardname 1 1 100 -1 -1 -1
  353.    IF (RC ~= 0) THEN
  354.     DO
  355.      Text = "Unable to load Card" || Index ":" || NL || STRIP( Cardname , B , '"' ) || NL || FileMemError
  356.      IF ( NbCards = 52 ) THEN
  357.       DO
  358.        Text = Text || NL || NL || "Note : You can't skip it, because there aren't" || NL || "enought selected cards files."
  359.        OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  360.        IF ( RC = 0 ) THEN
  361.         CALL ForceExit
  362.       END
  363.      ELSE
  364.       DO
  365.        OKAYN '"Error :"' '"'Text'"' '"Retry|Skip|Abort"'
  366.        IF ( RC = 0 ) THEN
  367.         CALL ForceExit
  368.        ELSE
  369.         DO
  370.          Counter = Counter + 1
  371.          IF ( Counter > WORDS( CardsFiles) ) THEN
  372.           DO
  373.            Text = "Sorry, there aren't any more card file to load..."
  374.            OKAYN '"Error :"' '"'Text'"' '"Quit"'
  375.            CALL ForceExit
  376.           END
  377.          ELSE
  378.           NbCards = NbCards - 1
  379.         END
  380.       END
  381.     END
  382.    ELSE
  383.     DO
  384.      Counter = Counter + 1
  385.      Continue0 = TRUE
  386.     END
  387.   END
  388.   
  389.   DITHER 1
  390.  
  391.   Continue = FALSE
  392.   DO UNTIL ( Continue = TRUE )
  393.    EXECUTE
  394.    IF (RC ~= 0) THEN
  395.     DO
  396.      Text = "Unable to render Card" || Index ":" || NL || STRIP( Cardname , B , '"' ) || NL || MemoryError
  397.      OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  398.       IF ( RC = 0 ) THEN
  399.        CALL ForceExit
  400.     END
  401.    ELSE
  402.     Continue = TRUE
  403.   END
  404.  
  405.   /*
  406.   ** Compose with symbol file.
  407.   */
  408.  
  409.   Symbolname = WORD( SymbolsFiles, Index )
  410.   LOAD_TYPE '"COMPOSE"'
  411.  
  412.   Continue = FALSE
  413.   DO UNTIL ( Continue = TRUE )
  414.    LOADER '"IFF"' Symbolname 0 0 100 SymbolCol0
  415.    IF (RC ~= 0) THEN
  416.     DO
  417.      Text = "Unable to load symbol :" || NL || STRIP( Symbolname , B , '"' ) || NL || FileMemError
  418.      OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  419.      IF ( RC = 0 ) THEN
  420.       CALL ForceExit
  421.     END
  422.    ELSE
  423.     Continue = TRUE
  424.   END
  425.  
  426.   DITHER 0
  427.  
  428.   Continue = FALSE
  429.   DO UNTIL ( Continue = TRUE )
  430.    EXECUTE
  431.    IF (RC ~= 0) THEN
  432.     DO
  433.      Text = "Unable to render Card" || Index ":" || NL || STRIP( Cardname , B , '"' ) || NL || MemoryError
  434.      OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  435.      IF ( RC = 0 ) THEN
  436.       CALL ForceExit
  437.     END
  438.    ELSE
  439.     Continue = TRUE
  440.   END
  441.  
  442.   /*
  443.   ** Save final card file.
  444.   */
  445.  
  446.   IF ( Index+2 < 10 ) THEN
  447.    Savename = DestDir || Basename || ".00" || Index+2
  448.   ELSE
  449.    IF ( Index+2 < 100 ) THEN
  450.     Savename = DestDir || Basename || ".0" || Index+2
  451.    ELSE
  452.     Savename = DestDir || Basename || "." || Index+2
  453.  
  454.   Continue = FALSE
  455.   DO UNTIL ( Continue = TRUE )
  456.    SAVER '"IFF"' '"'Savename'"' "IMAGE"
  457.     IF ( RC ~= 0 ) THEN
  458.      DO
  459.       Text = "Unable to save Card" || Index ":" || NL || STRIP( Cardname , B , '"' ) || NL || DiskSpaceError
  460.       OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  461.       IF ( RC = 0 ) THEN
  462.        CALL ForceExit
  463.      END
  464.     ELSE
  465.      Continue = TRUE
  466.   END
  467.  
  468.  Index = Index + 1
  469.  END
  470.  
  471. /*
  472. ** Get type of cardset.
  473. */
  474.  
  475.  Text = "- 55 cards (standard)   " || NL || "- 59 cards (extra cards)"
  476.  OKAYN '"Select type of cardset :"' '"'Text'"' '"55|59|Abort"'
  477.  IF ( RC = 0 ) THEN
  478.   CALL ForceExit
  479.  ELSE
  480.   IF ( RC = 1 ) THEN
  481.    NumberOfCards = 55
  482.   ELSE
  483.    NumberOfCards = 59
  484.  
  485. /*
  486. ** Render extras cards Card00->Card02 (& Card55->Card58).
  487. */
  488.  
  489.  CALL LoadExtraCards 0 3
  490.  IF ( RC ~= 0 ) THEN
  491.   CALL ForceExit
  492.  ELSE
  493.   IF ( NumberOfCards = 59) THEN
  494.    DO
  495.     CALL LoadExtraCards 55 4
  496.     IF ( RC ~= 0 ) THEN
  497.      CALL ForceExit
  498.    END
  499.  
  500. /*
  501. ** Free some memory.
  502. */
  503.  
  504.  CLOSE_RENDER_SCREEN
  505.  CLEAR_RENDERED
  506.  CLEAR_RAW
  507.   
  508. /*
  509. ** Check all created cards.
  510. */
  511.  
  512.  Continue = TRUE
  513.  Index = 0
  514.  DO WHILE ( Index <= NumberOfCards - 1 )
  515.   IF ( Index < 10 ) THEN
  516.    Cardname = DestDir || Basename || ".00" || Index 
  517.   ELSE
  518.    IF ( Index < 100 ) THEN
  519.     Cardname = DestDir || Basename || ".0" || Index
  520.    ELSE
  521.     Cardname = DestDir || Basename || "." || Index
  522.   IF ( ~EXISTS( Cardname ) ) THEN
  523.    DO
  524.     Continue = FALSE
  525.     Text = "Sorry, Card" || Index " not found !"
  526.     OKAYN '"Error :"' '"'Text'"' '"Check next|Quit"'
  527.     IF ( RC = 0 ) THEN
  528.      CALL ForceExit
  529.     ELSE
  530.      Index = Index + 1
  531.    END
  532.   ELSE
  533.    Index = Index + 1
  534.  END
  535.  
  536.  IF ( Continue = FALSE ) THEN
  537.   DO
  538.    Text = "Some cards aren't correctly rendered or missing." || NL || "You should run 3-RenderCardset.adpro to retry."
  539.    OKAYN '"Infos :"' '"'Text'"' '"Quit"'
  540.    CALL ForceExit
  541.   END
  542.    
  543. /*
  544. ** Make final cardset.
  545. */
  546.  
  547.  Continue = FALSE
  548.  DO UNTIL ( Continue = TRUE )
  549.   Title = "Place" Basename || ".REKO in ? :"
  550.   GETDIR '"'Title'"' '"'DestDir'"'
  551.   IF ( RC = 0 ) THEN
  552.    DO
  553.     ToDir = ADPRO_RESULT
  554.     IF ( ( RIGHT( ToDir , 1 ) ~= "/" ) & ( RIGHT( ToDir , 1 ) ~= ":" ) ) THEN
  555.       ToDir = ToDir || "/"
  556.     Continue = TRUE
  557.    END
  558.   ELSE
  559.    DO
  560.     Text = "Use :" || NL || DestDir || NL || "as output directory ?"
  561.     OKAYN '"Confirm :"' '"'Text'"' '"Use|Select|Abort"'
  562.     IF ( RC = 0 ) THEN
  563.      CALL ForceExit
  564.     ELSE
  565.      IF ( RC = 1 ) THEN
  566.       DO
  567.        ToDir = DestDir
  568.        Continue = TRUE
  569.       END
  570.    END
  571.  END
  572.  
  573.  Continue = FALSE
  574.  DO UNTIL ( Continue = TRUE ) 
  575.   PRAGMA( 'D' , STRIP( DestDir , 'T' , '/' ) )
  576.   ADDRESS COMMAND "C:Reko" Basename || ".000" NumberOfCards
  577.  
  578.   IF ( ~EXISTS( DestDir || "Card.REKO" ) ) THEN
  579.    DO
  580.     Text = "Unable to create final cardset" Basename || ".REKO" || NL || "Perhaps not enought disk space or memory."
  581.     OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  582.     IF ( RC = 0 ) THEN
  583.      DO
  584.       OKAY1 "You should free some memory or reboot," || NL || "and run '4-CreateCardset.adpro'."
  585.       CALL ForceExit
  586.      END
  587.    END
  588.   ELSE
  589.    DO
  590.     Continue = TRUE
  591.     ADDRESS COMMAND 'C:Filenote FILE="' || DestDir || 'Card.REKO" COMMENT="Created with Klondike ADPTools © 1995 Lejardinier Olivier"'
  592.    END
  593.  END
  594.  
  595.  CardsetDir = ToDir
  596.  FromDir = DestDir || "Card.REKO"
  597.  
  598.  IF ( ToDir ~= DestDir ) THEN
  599.   DO
  600.    ToDir = ToDir || Basename || ".REKO"
  601.    ADDRESS COMMAND "C:Copy FROM" FromDir ToDir "COM QUIET"
  602.    ADDRESS COMMAND "C:Delete >NIL: FILE" FromDir "QUIET"
  603.   END
  604.  ELSE
  605.   DO
  606.    ToDir = ToDir || Basename || ".REKO"
  607.    ADDRESS COMMAND "C:Rename FROM" FromDir "AS" ToDir "QUIET"
  608.   END
  609.  
  610.  Text = "You can find the cardset" Basename || ".REKO in directory :" || NL || CardsetDir
  611.  OKAYN '"Infos :"' '"'Text'"' '"Quit"'
  612.  
  613. /*
  614. ** Quit.
  615. */
  616.  
  617. ForceExit:
  618.  
  619.  CLOSE_RENDER_SCREEN
  620.  CLEAR_RENDERED
  621.  CLEAR_RAW
  622.  
  623.  IF ( EXISTS( TempDefaults ) ) THEN
  624.   DO
  625.    LOAD_DEFAULTS TempDefaults
  626.    IF (RC ~= 0) THEN
  627.     OKAY1 "Unable to restore old settings."
  628.     ADDRESS COMMAND "C:Delete >NIL: FILE" TempDefaults "QUIET"
  629.   END
  630.  
  631.  EXIT 0
  632.  RETURN
  633.  
  634. /*
  635. ** Load extra cards.
  636. */
  637.  
  638. LoadExtraCards:
  639.  
  640.  PARSE ARG CounterStart NbCards
  641.  
  642.  CounterStop = CounterStart + NbCards - 1
  643.  
  644.  DO Counter = CounterStart TO CounterStop
  645.  
  646.   Continue0 = FALSE
  647.   Continue1 = FALSE
  648.   DO UNTIL ( Continue0 = TRUE )
  649.    DO UNTIL ( Continue1 = TRUE )
  650.     Title = "Select Card" || Counter ":"
  651.     GETFILE '"'Title'"' '"'SourceDir'"'
  652.     IF ( RC ~= 0 ) THEN
  653.      DO
  654.       Text = "You MUST select Card" || Counter
  655.       OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  656.       IF ( RC = 0 ) THEN
  657.        RETURN -1
  658.      END
  659.     ELSE
  660.      Continue1 = TRUE
  661.    END
  662.  
  663.    Cardname = ADPRO_RESULT
  664.    SourceDir = Cardname
  665.    FirstChar = LEFT( SourceDir , 1 )
  666.    IF ( (FirstChar = '"') | (FirstChar = '''') ) THEN
  667.     SourceDir = STRIP( SourceDir, "B" , FirstChar )
  668.  
  669.    FNameSepPos = LASTPOS( '/' , SourceDir )
  670.    IF ( FNameSepPos = 0 ) THEN
  671.     FNameSepPos = LASTPOS( ':' , SourceDir )
  672.  
  673.    IF ( FNameSepPos ~= 0 ) THEN
  674.     SourceDir = LEFT( SourceDir , FNameSepPos )
  675.    ELSE
  676.     SourceDir = ""
  677.  
  678.    LOAD_TYPE '"REPLACE"'
  679.  
  680.    Continue2 = FALSE
  681.    DO UNTIL ( Continue2 = TRUE )
  682.     LOADER '"UNIVERSAL"' Cardname
  683.     IF ( RC ~= 0 ) THEN
  684.      DO
  685.       Text = "Unable to load Card" || Counter ":" || NL || STRIP( Cardname , B , '"' ) || NL || FileMemError
  686.       OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  687.       IF ( RC = 0 ) THEN
  688.        RETURN -1
  689.      END
  690.     ELSE
  691.      Continue2 = TRUE
  692.    END
  693.  
  694.    XSIZE
  695.    CardXSize = ADPRO_RESULT
  696.    YSIZE
  697.    CardYSize = ADPRO_RESULT
  698.  
  699.    IF ( ( CardXSize < 88) | ( CardYSize < 130) ) THEN
  700.     DO
  701.      Text = "Picture size of Card" || Counter ":" || NL || STRIP( Cardname , B , '"' ) || NL || "is too small (=" || CardXSize || "x" || CardYSize || "), should be 88x130 pixels."
  702.      OKAYN '"Error :"' '"'Text'"' '"Select new|Abort"'
  703.      IF ( RC = 0 ) THEN
  704.       RETURN -1
  705.     END
  706.    ELSE
  707.     IF ( ( CardXSize > 88) | ( CardYSize > 130) ) THEN
  708.      DO
  709.       Text = "Picture size of Card" || Counter ":" || NL || STRIP( Cardname , B , '"' ) || NL || "is too big (=" || CardXSize || "x" || CardYSize || "), should be 88x130 pixels."
  710.       OKAYN '"Error :"' '"'Text'"' '"Scale|Select new|Abort"'
  711.       IF ( RC = 0 ) THEN
  712.        RETURN -1
  713.       ELSE
  714.        IF ( RC = 1 ) THEN
  715.         DO
  716.          ABS_SCALE 88 130
  717.          IF ( RC ~= 0 ) THEN
  718.           DO
  719.            Text = "Unable to scale Card" || Counter ":" || NL || STRIP( Cardname , B , '"' ) || NL || MemoryError
  720.            OKAYN '"Error :"' '"'Text'"' '"Quit"'
  721.            RETURN -1
  722.           END
  723.          ELSE
  724.           Continue0 = TRUE
  725.         END
  726.      END
  727.     ELSE
  728.      Continue0 = TRUE
  729.   END
  730.  
  731.   DITHER 1
  732.  
  733.   Continue = FALSE
  734.   DO UNTIL ( Continue = TRUE )
  735.    EXECUTE
  736.    IF ( RC ~= 0 ) THEN
  737.     DO
  738.      Text = "Unable to render Card" || Counter ":" || NL || STRIP( Cardname , B , '"' ) || NL || MemoryError
  739.      OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  740.      IF ( RC = 0 ) THEN
  741.       RETURN -1
  742.     END
  743.    ELSE
  744.     Continue = TRUE
  745.   END
  746.  
  747.   Continue = FALSE
  748.   DO UNTIL ( Continue = TRUE )
  749.    IF ( Counter < 10 ) THEN
  750.     SAVER '"IFF"' DestDir || Basename || ".00" || Counter "IMAGE"
  751.    ELSE
  752.     SAVER '"IFF"' DestDir || Basename || ".0" || Counter "IMAGE"
  753.  
  754.    IF ( RC ~= 0 ) THEN
  755.     DO
  756.      Text = "Unable to save Card" || Counter ":" || NL || STRIP( Cardname , B , '"' ) || NL || DiskSpaceError
  757.      OKAYN '"Error :"' '"'Text'"' '"Retry|Abort"'
  758.      IF ( RC = 0 ) THEN
  759.       RETURN -1
  760.     END
  761.    ELSE
  762.     Continue = TRUE
  763.   END
  764.  END
  765.  
  766.  RETURN 0
  767.